package org.dromara.mqtt.domain.vo;


import org.dromara.common.mybatis.core.domain.BaseEntity;
import io.github.linpeilie.annotations.AutoMapper;
import org.dromara.mqtt.domain.DeviceControl;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;

/**
 * IoT设备控制视图对象
 *
 * @author Miles Meng
 * @date 2025-09-01
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DeviceControl.class)
public class DeviceControlVo extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 控制ID
     */
    private Long id;

    /**
     * 设备ID
     */
//    @ExcelProperty(value = "设备ID")
    private String deviceId;

    /**
     * 产品Key
     */
//    @ExcelProperty(value = "产品Key")
    private String productKey;

    /**
     * 控制方法：set-设置，get-查询
     */
//    @ExcelProperty(value = "控制方法")
    private String method;

    /**
     * 客户端令牌
     */
//    @ExcelProperty(value = "客户端令牌")
    private String clientToken;

    /**
     * 控制参数
     */
//    @ExcelProperty(value = "控制参数")
    private String paramsJson;

    /**
     * 响应状态码：200-成功，400-错误请求，403-权限验证失败，500-设备内部错误
     */
//    @ExcelProperty(value = "响应状态码")
    private Integer code;

    /**
     * 响应状态：success-成功，error-错误
     */
//    @ExcelProperty(value = "响应状态")
    private String status;

    /**
     * 响应数据
     */
//    @ExcelProperty(value = "响应数据")
    private String data;

    /**
     * 消息类型：cmd-指令，state-状态
     */
//    @ExcelProperty(value = "消息类型")
    private String messageType;

    /**
     * QoS等级：0-最多一次，1-至少一次，2-恰好一次
     */
//    @ExcelProperty(value = "QoS等级")
    private Integer qos;

    /**
     * 是否保留消息：0-否，1-是
     */
//    @ExcelProperty(value = "是否保留消息")
    private Integer retained;


}

